
public class Funcionario {
  private String nome;
  private int idade;
  private float salario;
  private boolean possuiPlanoSaude;
  private Cargo cargo;
  
  public Funcionario(String nome, int idade, float salario, Cargo cargo) {
    this.nome = nome;
    this.idade = idade;
    this.salario = salario;
    this.cargo = cargo;    
  }

  public String getNome() {
    return nome;
  }

  public void setNome(String nome) {
    this.nome = nome;
  }

  public int getIdade() {
    return idade;
  }

  public void setIdade(int idade) {
    this.idade = idade;
  }

  public float getSalario() {
    return salario;
  }

  public void setSalario(float salario) {
    this.salario = salario;
  }

  public boolean isPossuiPlanoSaude() {
    return possuiPlanoSaude;
  }

  public void setPossuiPlanoSaude(boolean possuiPlanoSaude) {
    this.possuiPlanoSaude = possuiPlanoSaude;
  }

  public Cargo getCargo() {
    return cargo;
  }

  public void setCargo(Cargo cargo) {
    this.cargo = cargo;
  }
  
  public float valorInss() {
    return this.salario * cargo.getAliquotaInss() / 100.0f;
  }
  
  public float valorPlanoSaude(){
    if (possuiPlanoSaude) {
      if (idade <= 40)
        return 100;
      else if (idade <= 50)
        return 200;
      else if (idade <= 60)
        return 300;
      else
        return 500;          
    }
    else
      return 0;
  }
  
  public float salarioLiquido(){
    return salario - valorInss() - valorPlanoSaude() - cargo.getValorSindicato();
  }
  
}//Funcionario.
